[INFO] cloning repository https://github.com/BadPrivacyclub/rust-fly-telegram
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BadPrivacyclub/rust-fly-telegram" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBadPrivacyclub%2Frust-fly-telegram", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBadPrivacyclub%2Frust-fly-telegram'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cceaad56d83ee33af7b80c766117ee7b99fb232a
[INFO] fixing BadPrivacyclub/rust-fly-telegram against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBadPrivacyclub%2Frust-fly-telegram" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/BadPrivacyclub/rust-fly-telegram
[INFO] finished tweaking git repo https://github.com/BadPrivacyclub/rust-fly-telegram
[INFO] tweaked toml for git repo https://github.com/BadPrivacyclub/rust-fly-telegram written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/BadPrivacyclub/rust-fly-telegram on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/BadPrivacyclub/rust-fly-telegram already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d31daf525b892b3f7901f77e9f8f511f57bad76f52e517633cf05ab5bb6b87d0
[INFO] running `Command { std: "docker" "start" "d31daf525b892b3f7901f77e9f8f511f57bad76f52e517633cf05ab5bb6b87d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d31daf525b892b3f7901f77e9f8f511f57bad76f52e517633cf05ab5bb6b87d0" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d31daf525b892b3f7901f77e9f8f511f57bad76f52e517633cf05ab5bb6b87d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d31daf525b892b3f7901f77e9f8f511f57bad76f52e517633cf05ab5bb6b87d0" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]     Checking critical-section v1.2.0
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking typenum v1.20.0
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]     Checking rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking bytes v1.11.1
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling uncased v0.9.10
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]     Checking block-padding v0.3.3
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking hashbrown v0.17.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]    Compiling pin-project-internal v1.1.12
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]     Checking pin-project v1.1.12
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling bindgen v0.66.1
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking uuid v1.23.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling peeking_take_while v0.1.2
[INFO] [stderr]    Compiling lazycell v1.3.0
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]     Checking webpki-roots v1.0.7
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling prost-derive v0.12.6
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tokio-io-timeout v1.2.1
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]    Compiling grammers-tl-parser v1.2.1
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking prost v0.12.6
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]    Compiling rustls v0.22.4
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]    Compiling phf_codegen v0.11.3
[INFO] [stderr]    Compiling grammers-tl-gen v0.9.0
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking openssl-sys v0.9.115
[INFO] [stderr]     Checking rustls-webpki v0.102.8
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]     Checking fallible-iterator v0.2.0
[INFO] [stderr]    Compiling rustls v0.23.39
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]     Checking openssl v0.10.79
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]    Compiling grammers-tl-types v0.9.0
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]    Compiling libsql-sqlite3-parser v0.13.0
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking http-range-header v0.3.1
[INFO] [stderr]    Compiling erased-serde v0.4.8
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking tokio-rustls v0.25.0
[INFO] [stderr]     Checking tower-http v0.4.4
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling ar_archive_writer v0.5.1
[INFO] [stderr]     Checking rustls-native-certs v0.7.3
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking native-tls v0.2.18
[INFO] [stderr]    Compiling libsql-ffi v0.9.30
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking phf v0.11.3
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]     Checking cbc v0.1.2
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]    Compiling which v8.0.2
[INFO] [stderr]    Compiling erasable v1.3.0
[INFO] [stderr]    Compiling psm v0.1.31
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]    Compiling luajit-src v210.6.6+707c12b
[INFO] [stderr]     Checking rand v0.9.4
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling enum-as-inner v0.6.1
[INFO] [stderr]     Checking libsql-hrana v0.9.30
[INFO] [stderr]     Checking glass_pumpkin v1.10.0
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]    Compiling lua-src v550.0.0
[INFO] [stderr]    Compiling stacker v0.1.24
[INFO] [stderr]     Checking data-encoding v2.9.0
[INFO] [stderr]     Checking tagptr v0.2.0
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]     Checking moka v0.12.15
[INFO] [stderr]     Checking hickory-proto v0.25.2
[INFO] [stderr]     Checking hyper-timeout v0.4.1
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking hyper-rustls v0.25.0
[INFO] [stderr]     Checking hyper-rustls v0.27.9
[INFO] [stderr]     Checking tower-http v0.6.10
[INFO] [stderr]    Compiling mlua-sys v0.10.0
[INFO] [stderr]     Checking grammers-crypto v0.9.0
[INFO] [stderr]    Compiling serde_with_macros v3.19.0
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking resolv-conf v0.7.6
[INFO] [stderr]    Compiling pulldown-cmark v0.13.3
[INFO] [stderr]     Checking async-http-proxy v1.2.5
[INFO] [stderr]    Compiling include_dir v0.7.4
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]     Checking serde_with v3.19.0
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]     Checking rc-box v1.3.0
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking os_info v3.14.0
[INFO] [stderr]     Checking hickory-resolver v0.25.2
[INFO] [stderr]     Checking tokio-socks v0.5.2
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking tonic v0.11.0
[INFO] [stderr]     Checking ordered-float v2.10.1
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking locate-locale v0.2.0
[INFO] [stderr]    Compiling typetag v0.2.21
[INFO] [stderr]     Checking takecell v0.1.1
[INFO] [stderr]     Checking take_mut v0.2.2
[INFO] [stderr]     Checking poly1305 v0.8.0
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking teloxide-core v0.13.0
[INFO] [stderr]     Checking dptree v0.5.1
[INFO] [stderr]     Checking axum v0.8.9
[INFO] [stderr]     Checking serde-value v0.7.0
[INFO] [stderr]     Checking tonic-web v0.11.0
[INFO] [stderr]     Checking inotify v0.11.1
[INFO] [stderr]    Compiling aquamarine v0.6.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling teloxide-macros v0.10.0
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking chacha20 v0.9.1
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking notify-types v2.1.0
[INFO] [stderr]    Compiling typetag-impl v0.2.21
[INFO] [stderr]     Checking inventory v0.3.24
[INFO] [stderr]     Checking md5 v0.8.0
[INFO] [stderr]     Checking mlua v0.11.6
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking notify v8.2.0
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]     Checking chacha20poly1305 v0.10.1
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking rand v0.10.1
[INFO] [stderr]     Checking email_address v0.2.9
[INFO] [stderr]    Compiling expect-json-macros v1.10.1
[INFO] [stderr]     Checking rust-multipart-rfc7578_2 v0.9.0
[INFO] [stderr]     Checking cookie v0.18.1
[INFO] [stderr]     Checking reserve-port v2.4.0
[INFO] [stderr]     Checking expect-json v1.10.1
[INFO] [stderr]     Checking bytesize v2.3.1
[INFO] [stderr]     Checking libsql-rusqlite v0.9.30
[INFO] [stderr]     Checking axum-test v20.0.0
[INFO] [stderr]     Checking libsql-sys v0.9.30
[INFO] [stderr]     Checking libsql_replication v0.9.30
[INFO] [stderr]     Checking libsql v0.9.30
[INFO] [stderr]     Checking grammers-mtproto v0.9.0
[INFO] [stderr]     Checking grammers-session v0.9.0
[INFO] [stderr]     Checking grammers-mtsender v0.9.0
[INFO] [stderr]     Checking grammers-client v0.9.0
[INFO] [stderr]     Checking teloxide v0.17.0
[INFO] [stderr]     Checking fly-telegram v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/main.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/music_worker.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:134:45
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let _guard = lock.lock().await;
[INFO] [stdout]     |         ------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `_guard` calls a custom destructor
[INFO] [stdout]     |         `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 134 |     seal_database_file(password.as_deref()).await
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 135 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:316:27
[INFO] [stdout]     |
[INFO] [stdout] 316 |     while let Some(row) = rows.next().await? {
[INFO] [stdout]     |                    ---    -----------------^
[INFO] [stdout]     |                    |      |           |
[INFO] [stdout]     |                    |      |           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                    |      |           up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |      |           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                    |      up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                    |      up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                    |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    `row` calls a custom destructor
[INFO] [stdout]     |                    `row` will be dropped later as of Edition 2024
[INFO] [stdout] 317 |         columns.push(row.get::<String>(1)?);
[INFO] [stdout]     |                      ---------------------
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                      `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 318 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `row` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:432:27
[INFO] [stdout]     |
[INFO] [stdout] 432 |     while let Some(row) = account_rows.next().await? {
[INFO] [stdout]     |                    ---    -------------------------^
[INFO] [stdout]     |                    |      |                   |
[INFO] [stdout]     |                    |      |                   this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                    |      |                   up until Edition 2021 `#10` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                    |      up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                    |      up until Edition 2021 `#9` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                    |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    `row` calls a custom destructor
[INFO] [stdout]     |                    `row` will be dropped later as of Edition 2024
[INFO] [stdout] 433 |         let account = AccountSnapshot {
[INFO] [stdout] 434 |             id: row.get(0)?,
[INFO] [stdout]     |                 -----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 435 |             name: row.get(1)?,
[INFO] [stdout]     |                   -----------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 436 |             session_file: row.get(2)?,
[INFO] [stdout]     |                           -----------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                           `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 437 |         };
[INFO] [stdout] 438 |         accounts.insert(account.id.clone(), read_account(connection, account).await?);
[INFO] [stdout]     |                                             ----------------------------------------
[INFO] [stdout]     |                                             |                                 |
[INFO] [stdout]     |                                             |                                 this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                             |                                 `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                             `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                             `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 439 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `row` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:462:27
[INFO] [stdout]     |
[INFO] [stdout] 462 |     while let Some(row) = chat_rows.next().await? {
[INFO] [stdout]     |                    ---    ----------------------^
[INFO] [stdout]     |                    |      |                |
[INFO] [stdout]     |                    |      |                this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                    |      |                up until Edition 2021 `#13` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |      |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                    |      up until Edition 2021 `#11` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                    |      up until Edition 2021 `#12` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                    |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    `row` calls a custom destructor
[INFO] [stdout]     |                    `row` will be dropped later as of Edition 2024
[INFO] [stdout] 463 |         let chat = ChatSnapshot {
[INFO] [stdout] 464 |             id: row.get(0)?,
[INFO] [stdout]     |                 -----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 465 |             title: row.get(1)?,
[INFO] [stdout]     |                    -----------
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                    `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 466 |             kind: row.get(2)?,
[INFO] [stdout]     |                   -----------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 467 |             username: row.get(3)?,
[INFO] [stdout]     |                       -----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                       `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 468 |             link: row.get(4)?,
[INFO] [stdout]     |                   -----------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 469 |             avatar_path: row.get(5)?,
[INFO] [stdout]     |                          -----------
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                          `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 473 |             read_chat(connection, &account.id, chat).await?,
[INFO] [stdout]     |             -----------------------------------------------
[INFO] [stdout]     |             |                                        |
[INFO] [stdout]     |             |                                        this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |             |                                        `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |             `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |             `#9` will be dropped later as of Edition 2024
[INFO] [stdout] 474 |         );
[INFO] [stdout] 475 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `row` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#10` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:511:27
[INFO] [stdout]     |
[INFO] [stdout] 511 |     while let Some(row) = rows.next().await? {
[INFO] [stdout]     |                    ---    -----------------^
[INFO] [stdout]     |                    |      |           |
[INFO] [stdout]     |                    |      |           this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                    |      |           up until Edition 2021 `#13` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |      |           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                    |      up until Edition 2021 `#11` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                    |      up until Edition 2021 `#12` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                    |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    `row` calls a custom destructor
[INFO] [stdout]     |                    `row` will be dropped later as of Edition 2024
[INFO] [stdout] 512 |         messages.push(serde_json::json!({
[INFO] [stdout] 513 |             "message_id": row.get::<i32>(0)?,
[INFO] [stdout]     |                           ------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 514 |             "sender_id": row.get::<Option<String>>(1)?,
[INFO] [stdout]     |                          -----------------------------
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                          `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 515 |             "text": row.get::<String>(2)?,
[INFO] [stdout]     |                     ---------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                     `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 516 |             "sent_at": row.get::<String>(3)?,
[INFO] [stdout]     |                        ---------------------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                        `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 517 |             "deleted_at": row.get::<String>(4)?,
[INFO] [stdout]     |                           ---------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                           `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 518 |             "media_type": row.get::<Option<String>>(5)?,
[INFO] [stdout]     |                           -----------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                           `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 519 |             "media_path": row.get::<Option<String>>(6)?,
[INFO] [stdout]     |                           -----------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                           `#8` will be dropped later as of Edition 2024
[INFO] [stdout] 520 |             "media_name": row.get::<Option<String>>(7)?,
[INFO] [stdout]     |                           -----------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                           `#9` will be dropped later as of Edition 2024
[INFO] [stdout] 521 |             "media_size": row.get::<Option<i64>>(8)?,
[INFO] [stdout]     |                           --------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                           `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 522 |         }));
[INFO] [stdout] 523 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `row` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:607:27
[INFO] [stdout]     |
[INFO] [stdout] 607 |     while let Some(row) = rows.next().await? {
[INFO] [stdout]     |                    ---    -----------------^
[INFO] [stdout]     |                    |      |           |
[INFO] [stdout]     |                    |      |           this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]     |                    |      |           up until Edition 2021 `#23` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |      |           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |                    |      up until Edition 2021 `#21` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |                    |      up until Edition 2021 `#22` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                    |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    `row` calls a custom destructor
[INFO] [stdout]     |                    `row` will be dropped later as of Edition 2024
[INFO] [stdout] 608 |         messages.push(serde_json::json!({
[INFO] [stdout] 609 |             "id": row.get::<i64>(0)?,
[INFO] [stdout]     |                   ------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 610 |             "message_id": row.get::<i32>(1)?,
[INFO] [stdout]     |                           ------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                           `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 611 |             "sender_id": row.get::<Option<String>>(2)?,
[INFO] [stdout]     |                          -----------------------------
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                          `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 612 |             "text": row.get::<String>(3)?,
[INFO] [stdout]     |                     ---------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 613 |             "sent_at": row.get::<String>(4)?,
[INFO] [stdout]     |                        ---------------------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                        `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 614 |             "deleted_at": row.get::<String>(5)?,
[INFO] [stdout]     |                           ---------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                           `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 615 |             "media_type": row.get::<Option<String>>(6)?,
[INFO] [stdout]     |                           -----------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                           `#8` will be dropped later as of Edition 2024
[INFO] [stdout] 616 |             "media_path": row.get::<Option<String>>(7)?,
[INFO] [stdout]     |                           -----------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                           `#9` will be dropped later as of Edition 2024
[INFO] [stdout] 617 |             "media_name": row.get::<Option<String>>(8)?,
[INFO] [stdout]     |                           -----------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                           `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 618 |             "media_size": row.get::<Option<i64>>(9)?,
[INFO] [stdout]     |                           --------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                           `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 619 |             "account": {
[INFO] [stdout] 620 |                 "id": row.get::<String>(10)?,
[INFO] [stdout]     |                       ----------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                       `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 621 |                 "name": row.get::<String>(11)?,
[INFO] [stdout]     |                         ----------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                         `#13` will be dropped later as of Edition 2024
[INFO] [stdout] 622 |                 "session_file": row.get::<String>(12)?,
[INFO] [stdout]     |                                 ----------------------
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                 `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 625 |                 "id": row.get::<String>(13)?,
[INFO] [stdout]     |                       ----------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                       `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 626 |                 "title": row.get::<String>(14)?,
[INFO] [stdout]     |                          ----------------------
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                          `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 627 |                 "kind": row.get::<String>(15)?,
[INFO] [stdout]     |                         ----------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                         `#17` will be dropped later as of Edition 2024
[INFO] [stdout] 628 |                 "username": row.get::<Option<String>>(16)?,
[INFO] [stdout]     |                             ------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                             `#18` will be dropped later as of Edition 2024
[INFO] [stdout] 629 |                 "link": row.get::<Option<String>>(17)?,
[INFO] [stdout]     |                         ------------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                         `#19` will be dropped later as of Edition 2024
[INFO] [stdout] 630 |                 "avatar_path": row.get::<Option<String>>(18)?,
[INFO] [stdout]     |                                ------------------------------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                                `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 633 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#21` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `row` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/client/auth.rs:155:33
[INFO] [stdout]     |
[INFO] [stdout] 155 |     info!("authorized as {:?}", client.get_me().await?.first_name());
[INFO] [stdout]     |     ----------------------------^^^^^^^^^^^^^^^^^^^^^^--------------
[INFO] [stdout]     |     |                           |
[INFO] [stdout]     |     |                           this temporary value will be dropped at the end of the block
[INFO] [stdout]     |     borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/client/auth.rs:155:33
[INFO] [stdout]     |
[INFO] [stdout] 155 |     info!("authorized as {:?}", client.get_me().await?.first_name());
[INFO] [stdout]     |     ----------------------------^^^^^^^^^^^^^^^^^^^^^^--------------
[INFO] [stdout]     |     |                           |
[INFO] [stdout]     |     |                           this temporary value will be dropped at the end of the block
[INFO] [stdout]     |     borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/client/auth.rs:369:33
[INFO] [stdout]     |
[INFO] [stdout] 369 |     while let Ok(Some(entry)) = entries.next_entry().await {
[INFO] [stdout]     |                       -----     ^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |         |                    |
[INFO] [stdout]     |                       |         |                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       |         |                    up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |         |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       |         |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       |         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |         `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       |         `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `entry` calls a custom destructor
[INFO] [stdout]     |                       `entry` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 377 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `entry` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/web/mod.rs:318:11
[INFO] [stdout]     |
[INFO] [stdout] 310 |     let pending = state.pending.lock().await.take();
[INFO] [stdout]     |         -------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `pending` calls a custom destructor
[INFO] [stdout]     |         `pending` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 318 |     match crate::client::auth::complete_sign_in(pending, &body.code, &body.password).await {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |           |                                                                          |
[INFO] [stdout]     |           |                                                                          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           |                                                                          up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 362 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/join.rs:357:1
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:487:1
[INFO] [stdout]     |
[INFO] [stdout] 487 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pending` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/join.rs:357:1
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pending` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:487:1
[INFO] [stdout]     |
[INFO] [stdout] 487 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `pending` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `pending` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/web/mod.rs:318:86
[INFO] [stdout]     |
[INFO] [stdout] 310 |     let pending = state.pending.lock().await.take();
[INFO] [stdout]     |         -------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `pending` calls a custom destructor
[INFO] [stdout]     |         `pending` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 318 |     match crate::client::auth::complete_sign_in(pending, &body.code, &body.password).await {
[INFO] [stdout]     |                                                                                      ^^^^^
[INFO] [stdout]     |                                                                                      |
[INFO] [stdout]     |                                                                                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 362 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `pending` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/join.rs:357:1
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pending` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:487:1
[INFO] [stdout]     |
[INFO] [stdout] 487 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `pending` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `pending` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/loader/context.rs:827:61
[INFO] [stdout]     |
[INFO] [stdout] 820 |     let msg = {
[INFO] [stdout]     |         ---
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `msg` calls a custom destructor
[INFO] [stdout]     |         `msg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 824 |     let Some(msg) = msg else {
[INFO] [stdout]     |              ---
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 827 |     telegram::msg_edit_or_respond(&ctx.runtime, &msg, text).await
[INFO] [stdout]     |                                                             ^^^^^
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 828 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `msg` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/loader/context.rs:838:55
[INFO] [stdout]     |
[INFO] [stdout] 831 |     let msg = {
[INFO] [stdout]     |         ---
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `msg` calls a custom destructor
[INFO] [stdout]     |         `msg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 835 |     let Some(msg) = msg else {
[INFO] [stdout]     |              ---
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 838 |     telegram::msg_edit_only(&ctx.runtime, &msg, text).await
[INFO] [stdout]     |                                                       ^^^^^
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 839 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `msg` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/loader/installer.rs:52:10
[INFO] [stdout]     |
[INFO] [stdout]  30 |     let guard = ctx.message.lock().await;
[INFO] [stdout]     |         -----
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `guard` calls a custom destructor
[INFO] [stdout]     |         `guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  34 |     let Some(reply) = msg.get_reply().await? else {
[INFO] [stdout]     |              -----
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `reply` calls a custom destructor
[INFO] [stdout]     |              `reply` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  52 |         .await
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  53 |         .map_err(|error| anyhow::anyhow!(error.to_string()))
[INFO] [stdout]  54 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `guard` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `reply` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `reply` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/loader/mod.rs:84:33
[INFO] [stdout]     |
[INFO] [stdout]  81 |         while let Some(entry) = entries.next_entry().await? {
[INFO] [stdout]     |                        -----    --------------------------
[INFO] [stdout]     |                        |        |                    |
[INFO] [stdout]     |                        |        |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        |        |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        |        `__awaitee` calls a custom destructor
[INFO] [stdout]     |                        |        `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        `entry` calls a custom destructor
[INFO] [stdout]     |                        `entry` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  84 |                 if let Err(e) = self.load_file(&path).await {
[INFO] [stdout]     |                            -    ^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |    |                     |
[INFO] [stdout]     |                            |    |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                            |    |                     up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            |    |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                            |    |                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |    this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                            |    up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            |    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                            |    `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            `e` calls a custom destructor
[INFO] [stdout]     |                            `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  87 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `entry` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/loader/mod.rs:81:33
[INFO] [stdout]     |
[INFO] [stdout]  81 |         while let Some(entry) = entries.next_entry().await? {
[INFO] [stdout]     |                        -----    --------------------------^
[INFO] [stdout]     |                        |        |                    |
[INFO] [stdout]     |                        |        |                    this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                        |        |                    up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        |        |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        |        |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        |        this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                        |        up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        |        this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                        |        up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        |        `__awaitee` calls a custom destructor
[INFO] [stdout]     |                        |        `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        `entry` calls a custom destructor
[INFO] [stdout]     |                        `entry` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  84 |                 if let Err(e) = self.load_file(&path).await {
[INFO] [stdout]     |                            -    ---------------------------
[INFO] [stdout]     |                            |    |                     |
[INFO] [stdout]     |                            |    |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                            |    |                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                            |    `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            `e` calls a custom destructor
[INFO] [stdout]     |                            `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  88 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `entry` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/watcher.rs:39:41
[INFO] [stdout]     |
[INFO] [stdout]  23 |     while let Some(event) = rx.recv().await {
[INFO] [stdout]     |                             ---------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `__awaitee` calls a custom destructor
[INFO] [stdout]     |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  37 |                             loader.unload(stem).await;
[INFO] [stdout]     |                             -------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  38 |                         }
[INFO] [stdout]  39 |                         if let Err(e) = loader.load_file(&reload_path).await {
[INFO] [stdout]     |                                    -    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                    |    |                              |
[INFO] [stdout]     |                                    |    |                              this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                    |    |                              up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                    |    |                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                    |    |                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    |    this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                    |    up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                    |    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                    |    `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    `e` calls a custom destructor
[INFO] [stdout]     |                                    `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  42 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/music_worker.rs:169:11
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut state = state.lock().await;
[INFO] [stdout]     |         ---------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `state` calls a custom destructor
[INFO] [stdout]     |         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 169 |     match start_track(&mut state, next, 0).await {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |           |                                |
[INFO] [stdout]     |           |                                this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           |                                up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 173 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/music_worker.rs:169:44
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut state = state.lock().await;
[INFO] [stdout]     |         ---------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `state` calls a custom destructor
[INFO] [stdout]     |         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 169 |     match start_track(&mut state, next, 0).await {
[INFO] [stdout]     |                                            ^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                            up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 173 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/music_worker.rs:185:11
[INFO] [stdout]     |
[INFO] [stdout] 180 |     let mut state = state.lock().await;
[INFO] [stdout]     |         ---------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `state` calls a custom destructor
[INFO] [stdout]     |         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 185 |     match start_track(&mut state, track, offset).await {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |           |                                      |
[INFO] [stdout]     |           |                                      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           |                                      up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 189 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/music_worker.rs:185:50
[INFO] [stdout]     |
[INFO] [stdout] 180 |     let mut state = state.lock().await;
[INFO] [stdout]     |         ---------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `state` calls a custom destructor
[INFO] [stdout]     |         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 185 |     match start_track(&mut state, track, offset).await {
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                  up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 189 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:134:45
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let _guard = lock.lock().await;
[INFO] [stdout]     |         ------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `_guard` calls a custom destructor
[INFO] [stdout]     |         `_guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 134 |     seal_database_file(password.as_deref()).await
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 135 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `_guard` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:316:27
[INFO] [stdout]     |
[INFO] [stdout] 316 |     while let Some(row) = rows.next().await? {
[INFO] [stdout]     |                    ---    -----------------^
[INFO] [stdout]     |                    |      |           |
[INFO] [stdout]     |                    |      |           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                    |      |           up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |      |           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                    |      up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                    |      up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                    |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    `row` calls a custom destructor
[INFO] [stdout]     |                    `row` will be dropped later as of Edition 2024
[INFO] [stdout] 317 |         columns.push(row.get::<String>(1)?);
[INFO] [stdout]     |                      ---------------------
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                      `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 318 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `row` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:432:27
[INFO] [stdout]     |
[INFO] [stdout] 432 |     while let Some(row) = account_rows.next().await? {
[INFO] [stdout]     |                    ---    -------------------------^
[INFO] [stdout]     |                    |      |                   |
[INFO] [stdout]     |                    |      |                   this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                    |      |                   up until Edition 2021 `#10` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                    |      up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                    |      up until Edition 2021 `#9` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                    |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    `row` calls a custom destructor
[INFO] [stdout]     |                    `row` will be dropped later as of Edition 2024
[INFO] [stdout] 433 |         let account = AccountSnapshot {
[INFO] [stdout] 434 |             id: row.get(0)?,
[INFO] [stdout]     |                 -----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 435 |             name: row.get(1)?,
[INFO] [stdout]     |                   -----------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 436 |             session_file: row.get(2)?,
[INFO] [stdout]     |                           -----------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                           `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 437 |         };
[INFO] [stdout] 438 |         accounts.insert(account.id.clone(), read_account(connection, account).await?);
[INFO] [stdout]     |                                             ----------------------------------------
[INFO] [stdout]     |                                             |                                 |
[INFO] [stdout]     |                                             |                                 this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                             |                                 `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                             `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                             `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 439 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `row` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:462:27
[INFO] [stdout]     |
[INFO] [stdout] 462 |     while let Some(row) = chat_rows.next().await? {
[INFO] [stdout]     |                    ---    ----------------------^
[INFO] [stdout]     |                    |      |                |
[INFO] [stdout]     |                    |      |                this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                    |      |                up until Edition 2021 `#13` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |      |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                    |      up until Edition 2021 `#11` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                    |      up until Edition 2021 `#12` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                    |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    `row` calls a custom destructor
[INFO] [stdout]     |                    `row` will be dropped later as of Edition 2024
[INFO] [stdout] 463 |         let chat = ChatSnapshot {
[INFO] [stdout] 464 |             id: row.get(0)?,
[INFO] [stdout]     |                 -----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 465 |             title: row.get(1)?,
[INFO] [stdout]     |                    -----------
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                    `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 466 |             kind: row.get(2)?,
[INFO] [stdout]     |                   -----------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 467 |             username: row.get(3)?,
[INFO] [stdout]     |                       -----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                       `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 468 |             link: row.get(4)?,
[INFO] [stdout]     |                   -----------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 469 |             avatar_path: row.get(5)?,
[INFO] [stdout]     |                          -----------
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                          `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 473 |             read_chat(connection, &account.id, chat).await?,
[INFO] [stdout]     |             -----------------------------------------------
[INFO] [stdout]     |             |                                        |
[INFO] [stdout]     |             |                                        this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |             |                                        `#10` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |             `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |             `#9` will be dropped later as of Edition 2024
[INFO] [stdout] 474 |         );
[INFO] [stdout] 475 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `row` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#10` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:511:27
[INFO] [stdout]     |
[INFO] [stdout] 511 |     while let Some(row) = rows.next().await? {
[INFO] [stdout]     |                    ---    -----------------^
[INFO] [stdout]     |                    |      |           |
[INFO] [stdout]     |                    |      |           this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                    |      |           up until Edition 2021 `#13` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |      |           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                    |      up until Edition 2021 `#11` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                    |      up until Edition 2021 `#12` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                    |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    `row` calls a custom destructor
[INFO] [stdout]     |                    `row` will be dropped later as of Edition 2024
[INFO] [stdout] 512 |         messages.push(serde_json::json!({
[INFO] [stdout] 513 |             "message_id": row.get::<i32>(0)?,
[INFO] [stdout]     |                           ------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 514 |             "sender_id": row.get::<Option<String>>(1)?,
[INFO] [stdout]     |                          -----------------------------
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                          `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 515 |             "text": row.get::<String>(2)?,
[INFO] [stdout]     |                     ---------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                     `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 516 |             "sent_at": row.get::<String>(3)?,
[INFO] [stdout]     |                        ---------------------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                        `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 517 |             "deleted_at": row.get::<String>(4)?,
[INFO] [stdout]     |                           ---------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                           `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 518 |             "media_type": row.get::<Option<String>>(5)?,
[INFO] [stdout]     |                           -----------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                           `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 519 |             "media_path": row.get::<Option<String>>(6)?,
[INFO] [stdout]     |                           -----------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                           `#8` will be dropped later as of Edition 2024
[INFO] [stdout] 520 |             "media_name": row.get::<Option<String>>(7)?,
[INFO] [stdout]     |                           -----------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                           `#9` will be dropped later as of Edition 2024
[INFO] [stdout] 521 |             "media_size": row.get::<Option<i64>>(8)?,
[INFO] [stdout]     |                           --------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                           `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 522 |         }));
[INFO] [stdout] 523 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `row` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:607:27
[INFO] [stdout]     |
[INFO] [stdout] 607 |     while let Some(row) = rows.next().await? {
[INFO] [stdout]     |                    ---    -----------------^
[INFO] [stdout]     |                    |      |           |
[INFO] [stdout]     |                    |      |           this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]     |                    |      |           up until Edition 2021 `#23` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |      |           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]     |                    |      up until Edition 2021 `#21` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]     |                    |      up until Edition 2021 `#22` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                    |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    `row` calls a custom destructor
[INFO] [stdout]     |                    `row` will be dropped later as of Edition 2024
[INFO] [stdout] 608 |         messages.push(serde_json::json!({
[INFO] [stdout] 609 |             "id": row.get::<i64>(0)?,
[INFO] [stdout]     |                   ------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 610 |             "message_id": row.get::<i32>(1)?,
[INFO] [stdout]     |                           ------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                           `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 611 |             "sender_id": row.get::<Option<String>>(2)?,
[INFO] [stdout]     |                          -----------------------------
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                          `#4` will be dropped later as of Edition 2024
[INFO] [stdout] 612 |             "text": row.get::<String>(3)?,
[INFO] [stdout]     |                     ---------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 613 |             "sent_at": row.get::<String>(4)?,
[INFO] [stdout]     |                        ---------------------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                        `#6` will be dropped later as of Edition 2024
[INFO] [stdout] 614 |             "deleted_at": row.get::<String>(5)?,
[INFO] [stdout]     |                           ---------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                           `#7` will be dropped later as of Edition 2024
[INFO] [stdout] 615 |             "media_type": row.get::<Option<String>>(6)?,
[INFO] [stdout]     |                           -----------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                           `#8` will be dropped later as of Edition 2024
[INFO] [stdout] 616 |             "media_path": row.get::<Option<String>>(7)?,
[INFO] [stdout]     |                           -----------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                           `#9` will be dropped later as of Edition 2024
[INFO] [stdout] 617 |             "media_name": row.get::<Option<String>>(8)?,
[INFO] [stdout]     |                           -----------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                           `#10` will be dropped later as of Edition 2024
[INFO] [stdout] 618 |             "media_size": row.get::<Option<i64>>(9)?,
[INFO] [stdout]     |                           --------------------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                           `#11` will be dropped later as of Edition 2024
[INFO] [stdout] 619 |             "account": {
[INFO] [stdout] 620 |                 "id": row.get::<String>(10)?,
[INFO] [stdout]     |                       ----------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                       `#12` will be dropped later as of Edition 2024
[INFO] [stdout] 621 |                 "name": row.get::<String>(11)?,
[INFO] [stdout]     |                         ----------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                         `#13` will be dropped later as of Edition 2024
[INFO] [stdout] 622 |                 "session_file": row.get::<String>(12)?,
[INFO] [stdout]     |                                 ----------------------
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                                 `#14` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 625 |                 "id": row.get::<String>(13)?,
[INFO] [stdout]     |                       ----------------------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                       `#15` will be dropped later as of Edition 2024
[INFO] [stdout] 626 |                 "title": row.get::<String>(14)?,
[INFO] [stdout]     |                          ----------------------
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                          `#16` will be dropped later as of Edition 2024
[INFO] [stdout] 627 |                 "kind": row.get::<String>(15)?,
[INFO] [stdout]     |                         ----------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                         `#17` will be dropped later as of Edition 2024
[INFO] [stdout] 628 |                 "username": row.get::<Option<String>>(16)?,
[INFO] [stdout]     |                             ------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                             `#18` will be dropped later as of Edition 2024
[INFO] [stdout] 629 |                 "link": row.get::<Option<String>>(17)?,
[INFO] [stdout]     |                         ------------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                         `#19` will be dropped later as of Edition 2024
[INFO] [stdout] 630 |                 "avatar_path": row.get::<Option<String>>(18)?,
[INFO] [stdout]     |                                ------------------------------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]     |                                `#20` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 633 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#21` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#22` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `row` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#9` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#11` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#15` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#18` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#20` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/client/auth.rs:155:33
[INFO] [stdout]     |
[INFO] [stdout] 155 |     info!("authorized as {:?}", client.get_me().await?.first_name());
[INFO] [stdout]     |     ----------------------------^^^^^^^^^^^^^^^^^^^^^^--------------
[INFO] [stdout]     |     |                           |
[INFO] [stdout]     |     |                           this temporary value will be dropped at the end of the block
[INFO] [stdout]     |     borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/client/auth.rs:155:33
[INFO] [stdout]     |
[INFO] [stdout] 155 |     info!("authorized as {:?}", client.get_me().await?.first_name());
[INFO] [stdout]     |     ----------------------------^^^^^^^^^^^^^^^^^^^^^^--------------
[INFO] [stdout]     |     |                           |
[INFO] [stdout]     |     |                           this temporary value will be dropped at the end of the block
[INFO] [stdout]     |     borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/client/auth.rs:369:33
[INFO] [stdout]     |
[INFO] [stdout] 369 |     while let Ok(Some(entry)) = entries.next_entry().await {
[INFO] [stdout]     |                       -----     ^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |         |                    |
[INFO] [stdout]     |                       |         |                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       |         |                    up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |         |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       |         |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       |         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |         `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       |         `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `entry` calls a custom destructor
[INFO] [stdout]     |                       `entry` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 377 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `entry` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/web/mod.rs:318:11
[INFO] [stdout]     |
[INFO] [stdout] 310 |     let pending = state.pending.lock().await.take();
[INFO] [stdout]     |         -------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `pending` calls a custom destructor
[INFO] [stdout]     |         `pending` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 318 |     match crate::client::auth::complete_sign_in(pending, &body.code, &body.password).await {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |           |                                                                          |
[INFO] [stdout]     |           |                                                                          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           |                                                                          up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 362 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/join.rs:357:1
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:487:1
[INFO] [stdout]     |
[INFO] [stdout] 487 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pending` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/join.rs:357:1
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pending` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:487:1
[INFO] [stdout]     |
[INFO] [stdout] 487 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `pending` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `pending` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/web/mod.rs:318:86
[INFO] [stdout]     |
[INFO] [stdout] 310 |     let pending = state.pending.lock().await.take();
[INFO] [stdout]     |         -------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `pending` calls a custom destructor
[INFO] [stdout]     |         `pending` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 318 |     match crate::client::auth::complete_sign_in(pending, &body.code, &body.password).await {
[INFO] [stdout]     |                                                                                      ^^^^^
[INFO] [stdout]     |                                                                                      |
[INFO] [stdout]     |                                                                                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 362 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `pending` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/join.rs:357:1
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pending` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:487:1
[INFO] [stdout]     |
[INFO] [stdout] 487 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `pending` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `pending` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/loader/context.rs:827:61
[INFO] [stdout]     |
[INFO] [stdout] 820 |     let msg = {
[INFO] [stdout]     |         ---
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `msg` calls a custom destructor
[INFO] [stdout]     |         `msg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 824 |     let Some(msg) = msg else {
[INFO] [stdout]     |              ---
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 827 |     telegram::msg_edit_or_respond(&ctx.runtime, &msg, text).await
[INFO] [stdout]     |                                                             ^^^^^
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 828 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `msg` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/loader/context.rs:838:55
[INFO] [stdout]     |
[INFO] [stdout] 831 |     let msg = {
[INFO] [stdout]     |         ---
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `msg` calls a custom destructor
[INFO] [stdout]     |         `msg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 835 |     let Some(msg) = msg else {
[INFO] [stdout]     |              ---
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 838 |     telegram::msg_edit_only(&ctx.runtime, &msg, text).await
[INFO] [stdout]     |                                                       ^^^^^
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 839 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `msg` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/loader/installer.rs:52:10
[INFO] [stdout]     |
[INFO] [stdout]  30 |     let guard = ctx.message.lock().await;
[INFO] [stdout]     |         -----
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `guard` calls a custom destructor
[INFO] [stdout]     |         `guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  34 |     let Some(reply) = msg.get_reply().await? else {
[INFO] [stdout]     |              -----
[INFO] [stdout]     |              |
[INFO] [stdout]     |              `reply` calls a custom destructor
[INFO] [stdout]     |              `reply` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  52 |         .await
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  53 |         .map_err(|error| anyhow::anyhow!(error.to_string()))
[INFO] [stdout]  54 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `guard` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `reply` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `reply` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/loader/mod.rs:84:33
[INFO] [stdout]     |
[INFO] [stdout]  81 |         while let Some(entry) = entries.next_entry().await? {
[INFO] [stdout]     |                        -----    --------------------------
[INFO] [stdout]     |                        |        |                    |
[INFO] [stdout]     |                        |        |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        |        |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        |        `__awaitee` calls a custom destructor
[INFO] [stdout]     |                        |        `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        `entry` calls a custom destructor
[INFO] [stdout]     |                        `entry` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  84 |                 if let Err(e) = self.load_file(&path).await {
[INFO] [stdout]     |                            -    ^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |    |                     |
[INFO] [stdout]     |                            |    |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                            |    |                     up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            |    |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                            |    |                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |    this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                            |    up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            |    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                            |    `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            `e` calls a custom destructor
[INFO] [stdout]     |                            `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  87 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `entry` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/loader/mod.rs:81:33
[INFO] [stdout]     |
[INFO] [stdout]  81 |         while let Some(entry) = entries.next_entry().await? {
[INFO] [stdout]     |                        -----    --------------------------^
[INFO] [stdout]     |                        |        |                    |
[INFO] [stdout]     |                        |        |                    this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                        |        |                    up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        |        |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        |        |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        |        this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                        |        up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        |        this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                        |        up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        |        `__awaitee` calls a custom destructor
[INFO] [stdout]     |                        |        `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        `entry` calls a custom destructor
[INFO] [stdout]     |                        `entry` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  84 |                 if let Err(e) = self.load_file(&path).await {
[INFO] [stdout]     |                            -    ---------------------------
[INFO] [stdout]     |                            |    |                     |
[INFO] [stdout]     |                            |    |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                            |    |                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                            |    `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            `e` calls a custom destructor
[INFO] [stdout]     |                            `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  88 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `entry` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sys/fs/unix.rs:1011:0
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/watcher.rs:39:41
[INFO] [stdout]     |
[INFO] [stdout]  23 |     while let Some(event) = rx.recv().await {
[INFO] [stdout]     |                             ---------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `__awaitee` calls a custom destructor
[INFO] [stdout]     |                             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  37 |                             loader.unload(stem).await;
[INFO] [stdout]     |                             -------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                             `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  38 |                         }
[INFO] [stdout]  39 |                         if let Err(e) = loader.load_file(&reload_path).await {
[INFO] [stdout]     |                                    -    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                    |    |                              |
[INFO] [stdout]     |                                    |    |                              this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                    |    |                              up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                    |    |                              this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                    |    |                              `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    |    this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                    |    up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                    |    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                    |    `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    `e` calls a custom destructor
[INFO] [stdout]     |                                    `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  42 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/anti_delete.rs:723:31
[INFO] [stdout]     |
[INFO] [stdout] 723 |         while let Some(row) = rows.next().await.expect("table info row should load") {
[INFO] [stdout]     |                        ---    -----------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                        |      |           |
[INFO] [stdout]     |                        |      |           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                        |      |           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        |      |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        |      |           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        |      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                        |      up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        |      `__awaitee` calls a custom destructor
[INFO] [stdout]     |                        |      `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        `row` calls a custom destructor
[INFO] [stdout]     |                        `row` will be dropped later as of Edition 2024
[INFO] [stdout] 724 |             columns.push(row.get::<String>(1).expect("column name should load"));
[INFO] [stdout] 725 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `row` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/music_worker.rs:169:11
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut state = state.lock().await;
[INFO] [stdout]     |         ---------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `state` calls a custom destructor
[INFO] [stdout]     |         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 169 |     match start_track(&mut state, next, 0).await {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |           |                                |
[INFO] [stdout]     |           |                                this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           |                                up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 173 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/music_worker.rs:169:44
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut state = state.lock().await;
[INFO] [stdout]     |         ---------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `state` calls a custom destructor
[INFO] [stdout]     |         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 169 |     match start_track(&mut state, next, 0).await {
[INFO] [stdout]     |                                            ^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                            up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 173 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/music_worker.rs:185:11
[INFO] [stdout]     |
[INFO] [stdout] 180 |     let mut state = state.lock().await;
[INFO] [stdout]     |         ---------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `state` calls a custom destructor
[INFO] [stdout]     |         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 185 |     match start_track(&mut state, track, offset).await {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |           |                                      |
[INFO] [stdout]     |           |                                      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           |                                      up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 189 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/music_worker.rs:185:50
[INFO] [stdout]     |
[INFO] [stdout] 180 |     let mut state = state.lock().await;
[INFO] [stdout]     |         ---------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `state` calls a custom destructor
[INFO] [stdout]     |         `state` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 185 |     match start_track(&mut state, track, offset).await {
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                  up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 189 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `state` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 01s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr] crater-edition-check: fly-telegram v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking fly-telegram v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 08s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr] crater-edition-check all packages now at latest edition
[INFO] [stderr] crater-edition-check: all finished
[INFO] running `Command { std: "docker" "inspect" "d31daf525b892b3f7901f77e9f8f511f57bad76f52e517633cf05ab5bb6b87d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d31daf525b892b3f7901f77e9f8f511f57bad76f52e517633cf05ab5bb6b87d0", kill_on_drop: false }`
[INFO] [stdout] d31daf525b892b3f7901f77e9f8f511f57bad76f52e517633cf05ab5bb6b87d0
